// pages/authorize/index.js
import Config from '../../etc/config'

var app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function() {
    // // let token = wx.getStorageSync('token');
    // let loginTime = wx.getStorageSync('loginTime')
    // console.log(loginTime)
    // let time = loginTime + wx.getStorageSync('expiresIn') - 1800
    // // 检查token和过期时间是否有效
    // if (time > Date.parse(new Date()) / 1000) {
    //     // this.login()
    // } else {
    //     this.registerUser()
    // }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },
  // 授权登陆
  bindGetUserInfo: function(e) {
    let that = this
    wx.showLoading({
      title: '正在登录',
      success: function() {
        if (!e.detail.userInfo) {
          return;
        }
        wx.setStorageSync('userInfo', e.detail.userInfo)
        that.registerUser();
      }
    })
  },

  login: function() {
    let that = this;
    let token = wx.getStorageSync('token');
    wx.request({
      url: Config.basePath + '/user/refreshToken',
      method: 'POST',
      dataType: 'json',
      header: {
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      data: {
        userId: wx.getStorageSync('userId'),
        refreshToken: wx.getStorageSync('refreshToken'),
        clientSecret: wx.getStorageSync('clientSecret')
      },
      success: function(res) {
        if (res.data.code != 0) {
          wx.removeStorageSync('token')
          // that.registerUser();
        } else {
          wx.setStorageSync('token', res.data.data.accessToken)
          wx.setStorageSync('refreshToken', res.data.data.refreshToken)
          wx.setStorageSync('clientSecret', res.data.data.clientSecret)
          wx.setStorageSync('expiresIn', res.data.data.expiresIn)
          wx.setStorageSync('loginTime', Date.parse(new Date()) / 1000)
          var pages = getCurrentPages(); // 获取页面栈
          var prevPage = pages[pages.length - 2]; // 上一个页面
          prevPage.setData({
            disabled: false
          })
          // 回到原来的地方
          wx.navigateBack(1);
          // wx.switchTab({
          //     url: '/pages/index/index',
          // })
        }
      }
    })
  },

  // wx.setStorageSync('token', res.data.data.accessToken)
  //         wx.setStorageSync('refreshToken', res.data.data.refreshToken)
  //         wx.setStorageSync('clientSecret', res.data.data.clientSecret)
  //         wx.setStorageSync('expiresIn', res.data.data.expiresIn)
  //         wx.setStorageSync('loginTime', Date.parse(new Date()) / 1000)

  // 注册用户
  registerUser: function() {
    var that = this;
    wx.login({
      success: function(res) {
        let code = res.code; // 微信登录接口返回的 code 参数，下面注册接口需要用到
        // 获取微信返回的用户信息，具体内容参考文档
        wx.getUserInfo({
          success: function(res) {
            let iv = res.iv;
            let encryptedData = res.encryptedData;
            // 下面开始调用注册接口
            wx.request({
              url: Config.basePath + '/user/wechat/login', // 写你们自己的登录或者注册的接口，没有的话这一块就不要了
              method: 'POST',
              dataType: 'json',
              header: {
                'Content-Type': 'application/x-www-form-urlencoded'
              },
              data: {
                code: code,
                encryptedData: encryptedData,
                iv: iv
              }, // 设置请求的参数
              success: (res) => {
                wx.hideLoading()
                // 将登陆信息存入本地缓存里，在token失效前可以保持登陆状态
                wx.setStorageSync('token', res.data.data.accessToken)
                wx.setStorageSync('userId', res.data.data.id)
                wx.setStorageSync("clientSecret", res.data.data.clientSecret)
                wx.setStorageSync("refreshToken", res.data.data.refreshToken)
                wx.setStorageSync('loginTime', Date.parse(new Date()) / 1000)
                wx.setStorageSync('expiresIn', res.data.data.expiresIn)
                wx.setStorageSync('times', Date.parse(new Date()) / 1000 + res.data.data.expiresIn)
                wx.hideLoading();
                // 登陆后可返回至登陆前的页面，如果强制登陆可删除执行设定跳转页面
                var pages = getCurrentPages(); // 获取页面栈
                var prevPage = pages[pages.length - 2]; // 上一个页面
                prevPage.setData({
                  disabled: false
                })
                wx.navigateBack(1);

                // 登陆后跳转至小程序主页
                // wx.switchTab({
                //     url: '/pages/index/index',
                // })
                // that.login();
              },
              fail: (res) => {
                wx.hideLoading()
                // console.log('失败：：',res)
              }
            })
          }
        })
      }
    })
  }
})